import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import { visualizer } from 'rollup-plugin-visualizer';

export default defineConfig({
  base:'./',
  plugins: [
    react(),
    visualizer({ open: true }), // 生成包体积分析图
  ],
  server: {
    open:true, // 启动时自动打开浏览器
    proxy: {
      '/api': {
        target: 'http://localhost:8088/',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api/, ''),
      },
      '/remove-bg-api': { // 新增的 API 路径
        target: 'https://api.remove.bg',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/remove-bg-api/, ''), // 根据需要重写路径
      },
    },
  },
  build: {
    outDir: 'dist', // 输出目录
    sourcemap: false, // 生产环境不生成 sourcemap
    minify: 'esbuild', // 使用 esbuild 进行压缩
    chunkSizeWarningLimit: 600, // 警告大小限制，单位为 KB
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            return id.toString().split('node_modules/')[1].split('/')[0].toString(); // 将依赖按模块分割
          }
        },
        assetFileNames: 'assets/[name]-[hash][extname]', // 自定义静态资源输出命名
        chunkFileNames: 'chunks/[name]-[hash].js', // 自定义 chunk 输出命名
        entryFileNames: 'js/[name]-[hash].js', // 自定义入口文件输出命名
      },
    },
    terserOptions: {
      compress: {
        drop_console: true, // 移除 console.log
      },
    },
  },
  optimizeDeps: {
    include: ['react', 'react-dom'], // 优化依赖
  },
});